---
title: Print Preview
summary: Popup screen that renders a caller-prepared legal document as an inline PDF in the browser.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-25
---

# Print Preview

This secondary popup screen is the browser-facing endpoint of the application's print-preview workflow. It does not collect user input; instead, a calling maintenance screen seeds shared print state through `clsLegalMaintenanceAncestor.PrintReport(...)`, opens `frmPrintPreview.aspx`, and this page uses [SAIF.Services.Printing](../libraries/saif-services-printing/overview.md) to render the prepared package/XML content back to the browser as an inline PDF within the shared metadata flow documented for [SAIF.Services.Imaging.Import](../libraries/saif-services-imaging-import/overview.md).

## Entry conditions
- A maintenance screen calls inherited `PrintReport(...)`, which stores `Model.XMLString`, `Model.PrintPackage`, and `Model.PrintUtil`, then opens `frmPrintPreview.aspx?__SAIFPID=<viewId>&Filename=/...` in a popup.
- `Model.PrintPackage` must be present and non-empty or the page returns no PDF output.
- The caller supplies a `Filename` context value that is reused to build the browser-facing PDF filename.

## Fields

| Field | Control type | Purpose | Validation |
| --- | --- | --- | --- |
| `None` | — | This screen exposes no user-editable fields; it only streams a generated PDF response. | — |

## Operations

| Operation | Trigger | Description |
| --- | --- | --- |
| Initialize print client | `Page_Load` Load | Creates `Model.PrintUtil` when the caller has not already populated the print utility instance. |
| Render inline PDF preview | `Page_Load` Load | Calls `Model.PrintUtil.previewDocument(Model.PrintPackage, Model.XMLString)`, sets `application/pdf` headers, and writes the returned bytes to the HTTP response. |

## Business rules

| Rule ID | Rule | Enforcement | Source |
| --- | --- | --- | --- |
| [BR-APP-005](../application/business-rules.md#br-app-005-print-preview-depends-on-a-shared-package-and-metadata-contract) | Print preview uses the shared print/document distribution metadata contract by passing the caller-prepared package/XML pair into `clsPrint.previewDocument` as part of the documented print-preview workflow. | `PrintReport`; `Page_Load` | `LegalMaintenance\Classes\clsLegalMaintenanceAncestor.vb:170-177`; `LegalMaintenance\frmPrintPreview.aspx.vb:21-28`; `docs\application\operations\print-preview-and-document-distribution.md:26-29` |

## Navigation

This screen does not issue any navigation calls; `Page_Load` returns an inline PDF response instead of redirecting to another ASPX screen.

## API calls

| Endpoint | Method | Purpose |
| --- | --- | --- |
| xPression `previewDocument` service via [SAIF.Services.Printing](../libraries/saif-services-printing/overview.md) `clsPrint.previewDocument` | SOAP | Render `Model.PrintPackage` and `Model.XMLString` into document bytes for inline browser preview. |

## Sources
- LegalMaintenance\frmPrintPreview.aspx
- LegalMaintenance\frmPrintPreview.aspx.vb
- LegalMaintenance\Classes\clsLegalMaintenanceAncestor.vb
- SAIF.Services.Printing\clsPrint.vb
- docs\application\business-rules.md
- docs\application\operations\print-preview-and-document-distribution.md
